//日志数据
var oplogStore=new Ext.data.Store({
	proxy : new Ext.data.HttpProxy({
		url : 'showAllOplog',
		method : 'post'
	}),
	reader : new Ext.data.JsonReader({
		root : 'oplog',
		totalProperty : 'total',
		id : 'id'
	}, [{
		name : 'id'
	}, {
		name : 'user'
	}, {
		name : 'groupId'
	}, {
		name : 'operation'
	}, {
		name : 'timestamp'
	}, {
		name : 'discription'
	}]),
	remoteSort: false
});

//表格列模型
var oplogColumnModel=new Ext.grid.ColumnModel([
	new Ext.grid.RowNumberer(),
	{
		header : '用户名',
		width : 100,
		dataIndex : 'user',
		sortable : true,
		id : 'name'
	}, {
		header : '模型组',
		width : 120,
		dataIndex : 'groupId',
		sortable : true,
		align : 'center'
	}, {
		header : '操作',
		width : 60,
		dataIndex : 'operation',
		sortable : true,
		align : 'right',
		renderer:function(value, cellmeta, record){
			switch(value){
			case 'uploadop':
				return '上传';
			case 'readop':
				return '查看';
			case 'deleteop':
				return '删除';
			case 'modifyop':
				return '修改';
			case 'download':
				return '下载';
			default:
				return '';
			}
		}
	}, {
		header : '时间戳',
		width : 120,
		dataIndex : 'timestamp',
		sortable : true,
		align : 'center'
	}, {
		header : '操作描述',
		width : 60,
		dataIndex : 'discription',
		sortable : true,
		align : 'center'
	}]
);

//模型-权限列表
var oplogList=new Ext.grid.EditorGridPanel({
	enableColumnResize : true,
	border : true,
	clicksToEdit:1,
	enableColumnMove : true,
	enableHdMenu : false,
	stripeRows: true, //显示斑马线
	loadMask: true,
	autoHeight:true,
	bodyStyle:'width:100%',
    autoWidth:true,
    editable:true,
    //sm : oplogsm,
	//columns : oplogColumnModel,
	bbar: new Ext.PagingToolbar({//下面的分页条
        pageSize: 20,
        store: oplogStore,
        displayInfo: true,
        displayMsg: '当前显示第 {0} 条到 {1} 条记录，一共 {2} 条',
        emptyMsg: "没有记录",
        lastText:"尾页",   
        nextText :"下一页",   
        prevText :"上一页",   
        firstText :"首页",   
        refreshText:"刷新页面"        
    }),
	cm : oplogColumnModel,
	store : oplogStore
	
});

//提交修改过的权限
var submitted=0;
function submitModifiedOplog(){
	submitted=0;
	var records=oplogStore.getModifiedRecords();
	for(var i=0;i<records.length;i++){
		var rec=records[i];
		var id=rec.get('id');
		var readop=rec.get('read');
		var deleteop=rec.get('delete');
		var modifyop=rec.get('modify');
		Ext.Ajax.request({
			url: 'updateOplog.action?method=updateOplog&id='+id
				+'&readop='+readop
		   		+'&deleteop='+deleteop
		   		+'&modifyop='+modifyop,				   	
		   	success: function(res,opt){		   		
		   		submitted++;
		   		rec.commit();	
		   		if(submitted>=records.length){
		   			Ext.Msg.alert('消息','提交成功！');
		   		}
		   	},
		   	failure: function(){
		   		
		   	}
		});
	}	
}

//按用户名搜索框
var userNameLogField=new Ext.form.TextField({
	id:'userName_log_txt',
	name:'user',
	width:100,
	allowblank:false,
	enableKeyEvents:true
});

//按文件名搜索框
var fileNameLogField=new Ext.form.TextField({
	id:'fileName_log_txt',
	name:'file',
	width:100,
	allowblank:false,
	enableKeyEvents:true
});

//按操作类型搜索框
var operationCombo=new Ext.form.ComboBox({
    id:'operation_search_cmb',
	name:'company',
	fieldLabel:'操作',
	allowblank:true,
	emptyText: '请选择',
	mode: 'local',   
	width:100,
    triggerAction: 'all',   
    valueField: 'id',   
    displayField: 'text',   
    editable:false,  
    selectOnFocus : false,  
    forceSelection : false,
    store: new Ext.data.SimpleStore({   
        fields: ['id','text'],
        data: [['uploadop','上传'],['readop','查看'],['deleteop','删除'],['modifyop','修改']]   
    })
});

//按项目搜索
var discriptionField=new Ext.form.TextField({
    id:'discription_txt',
	name:'discription',
	width:100,
	allowblank:false,
	enableKeyEvents:true	    	    	 
});

//起始时间
var afterDateField=new Ext.ux.form.DateTimeField({  
    fieldLabel : '开始日期',  
    emptyText : '请选择',  
    //disabledDays : [1, 2, 5],//将星期一,二,五禁止.数值为0-6,0为星期日,6为星期六  
    labelWidth : 100,  
    //readOnly : true,  
    //allowBlank : false,  
    name : 'after',  
    id : 'after'  
//    vtype : 'daterange',//daterange类型为上代码定义的类型  
//    endDateField : 'before'//必须跟endDate的id名相同  
});

//结束日期
var beforeDateField = new Ext.ux.form.DateTimeField({  
    fieldLabel : '结束日期',  
    emptyText : '请选择',  
    //disabledDays : [1, 2, 5],//将星期一,二,五禁止.数值为0-6,0为星期日,6为星期六  
    //readOnly : true,  
    //allowBlank : false,  
    name : 'before',  
    id : 'before'
//    vtype : 'daterange',//daterange类型为上代码定义的类型  
//    startDateField : 'after'//必须跟startDate的id名相同  
}); 

//工具栏
var tbar1=new Ext.Toolbar({
	items:[{
		xtype:'button',
		iconCls : 'search',
		width:60,
		text:'显示全部',
		handler:showAllOplogs
	},{
		xtype:'button',
		iconCls : 'search',
		width:60,
		text:'搜索',
		handler:searchOplog
	},
		new Ext.Toolbar.TextItem('用户名:'),
	    userNameLogField,
	    {xtype : "tbseparator"},
	    new Ext.Toolbar.TextItem('文件名:'),
	    fileNameLogField,
	    {xtype : "tbseparator"},
	    new Ext.Toolbar.TextItem('操作类型:'),
	    operationCombo,
	    {xtype : "tbseparator"},
	    new Ext.Toolbar.TextItem('描述:'),
	    discriptionField
	]
});

var tbar2=new Ext.Toolbar({
	items:[
	    new Ext.Toolbar.TextItem('起始时间:'),
	    afterDateField,
	    {xtype : "tbseparator"},
	    new Ext.Toolbar.TextItem('结束时间:'),
	    beforeDateField
	]
});

//权限设置面板
var oplogPanel=new Ext.Panel({
	title:'日志管理',
	id:'oplog-panel',
	layout:'fit', 
	items:[oplogList],
	autoScroll:true,
	showPage:function(){
		oplogStore.load({
			params : {
				start : 0,
				limit : 20
			}
		});
	},
	tbar:{
		xtype: 'container',
		items: [tbar1,tbar2]
	}
//	tbar:[{
//		xtype:'button',
//		iconCls : 'search',
//		width:60,
//		text:'显示全部',
//		handler:showAllOplogs
//	},{
//		xtype:'button',
//		iconCls : 'search',
//		width:60,
//		text:'搜索',
//		handler:searchOplog
//	},
//		new Ext.Toolbar.TextItem('用户名:'),
//	    userNameField,
//	    {xtype : "tbseparator"},
//	    new Ext.Toolbar.TextItem('文件名:'),
//	    fileNameField,
//	    {xtype : "tbseparator"},
//	    new Ext.Toolbar.TextItem('操作类型:'),
//	    operationCombo,
//	    {xtype : "tbseparator"},
//	    new Ext.Toolbar.TextItem('描述:'),
//	    discriptionField,
//	    {xtype : "tbseparator"},
//	    new Ext.Toolbar.TextItem('起始时间:'),
//	    afterDateField,
//	    {xtype : "tbseparator"},
//	    new Ext.Toolbar.TextItem('结束时间:'),
//	    beforeDateField
//	]
});

//根据关键字搜索
function searchOplog(){
	var fileName=fileNameLogField.getValue();
	var userName=userNameLogField.getValue();
	var operation=operationCombo.getValue();
	var discription=discriptionField.getValue();
	var afterValue=afterDateField.getValue();
	var after='';
	if(afterValue!=''){
		after=afterValue.format('Y-m-d H:i:s');
	}
	
	var beforeValue=beforeDateField.getValue();
	var before='';
	if(before!=''){
		before=beforeValue.format('Y-m-d H:i:s');
	}
	
	var newurl='searchOplog.action?method=searchOplog&file='+encodeURIComponent(fileName)
		+'&user='+encodeURIComponent(userName)
		+'&operation='+operation
		+'&dspt='+encodeURIComponent(discription)
		+'&after='+after
		+'&before='+before;
	oplogStore.proxy=new Ext.data.HttpProxy({
		url : newurl,
		method : 'post'
	});
	oplogStore.load({ params: { start: 0, limit: 20} });
	operationCombo.clearValue();
	//afterDateField.clearValue();
	//beforeDateField.clearValue();
}

//显示所有权限
function showAllOplogs(){	
	oplogStore.proxy=new Ext.data.HttpProxy({
		url : 'showOplogList',
		method : 'post'
	});
	oplogStore.load({ params: { start: 0, limit: 20} });
}